iT邦幫忙

DAY 21
6

C++ 指標 30日系列 第 17

C++ 指標 30日(21)

  • 分享至 

  • xImage
  •  

衝啊!pointer!


今日主題:陣列指標

陣列指標:意為陣列的元素,皆指向同一資料型態的指標,例如:

char *arr[4] = {"We",  "are",  "the",  "world."}

由於 [ ] 運算子順運算順序高於 * 運算子,因此這條指令代表著:

(1)4個元素的陣列
(2)每一個元素皆為指標
(3)指標皆指向char

陣列名稱是arr,所以arr也表示第一個元素arr[0]的位址,而且是一指標常數,所以:
(1)*arr == arr[0]
(2)arr[0] 是 "We" 字串中W字元的位址

其實arr也可視為2維陣列(因為指標和[ ]是互通的),所以可以利用下列三種方式印出"We"字串中的W字元。

(1)兩個 *,例如:**arr
(2)一個 *,加一個  [ ] ,例如: *arr[0]
(3)兩個  [ ][ ],例如: arr[0][0]

暈
鐵人文總整理


上一篇
C++ 指標 30日(20)
下一篇
C++ 指標 30日(22)
系列文
C++ 指標 30日26
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
總裁
iT邦好手 1 級 ‧ 2013-10-06 10:06:01

那時需用瑪洛客呢??...疑惑

ted99tw iT邦高手 1 級 ‧ 2013-10-06 10:10:27 檢舉

那是2014的內容...逃跑

總裁 iT邦好手 1 級 ‧ 2013-10-06 10:19:35 檢舉

意思是這一系列會連載到2014年嗎??...讚喜歡拍手簽名

ted99tw iT邦高手 1 級 ‧ 2013-10-06 10:24:17 檢舉

對啊,但中間會斷個11個月...逃跑

0
阿寶哥
iT邦新手 5 級 ‧ 2018-12-14 09:28:26
#include <iostream>
using namespace std;

int main(){
	char *arr[4] = {"We",  "are",  "the",  "world."};
	
	// *arr == arr[0]
	
	cout << "**arr: " << **arr << endl;
	cout << "*arr[0]: " << *arr[0] << endl;
	cout << "arr[0][0]: " << arr[0][0] << endl;
}

我在編譯以上的程式時出現

[Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]

錯誤訊息,請問是什麼原因呢?

我要留言

立即登入留言